Software-defined networking (SDN) often uses network controllers to configure logical networks throughout a datacenter. As SDN becomes more prevalent and datacenters cater to more and more tenants, controllers are expected to perform more operations. For example, a datacenter may include a plurality of physical host machines hosting a plurality of virtual machines (VMs) (or other virtual computing instances, such as containers (e.g., Docker containers), data compute nodes, isolated user space instances, namespace containers, etc.). The VMs may be interconnected as part of a logical network configured by a network controller.
In order to implement and manage a logical network on the plurality of host machines, the network controller may implement logical entities (e.g., logical routers, logical switches, etc.) as software running on the plurality of host machines. Such software may include virtual entities (e.g., virtual routers, virtual switches, virtual extensible local area network (VXLAN) tunnel endpoints (VTEPs), etc.) that run on the plurality of host machines to implement the functionality defined by the logical network. For example, the logical network may define two VMs as connected to logical ports of a single logical switch. The VMs, however, may be running on separate host machines. Accordingly, the network controller may configure the host machines with virtual entities that forward packets between the separate host machines over a physical network such that the two VMs can communicate as though they were connected to the same switch. A particular logical entity may be implemented by only a subset of the virtual entities managed by the controller.
At times, the configuration of the logical network may be updated, such as by an administrator of the logical network. For example, a logical entity may be added/removed from the logical network, interconnections between logical entities may be changed, configuration of a logical entity may be updated, etc. Different logical entities may be associated with/include different types of features (e.g., IP address discovery, span updater, L2 features, L3 features, logical grouping, distributed firewall, distributed network encryption, etc.). For example, a logical router is associated with L3 features; a logical switch is associated with L2 features, etc. Accordingly, the network controller, based on the update to the logical network, may need to update one or more logical entities associated with certain features, meaning the network controller may need to update one or more virtual entities that implement the one or more logical entities on the physical host machines. However, current techniques for updating the one or more logical entities could be improved.